#ifndef LITE_XL_PLUGIN_API
#define LITE_XL_PLUGIN_API
/* 
The lite_xl plugin API is quite simple. Any shared library can be a plugin file, so long
as it has an entrypoint that looks like the following, where xxxxx is the plugin name:

#include "lite_xl_plugin_api.h"

int lua_open_lite_xl_xxxxx(lua_State* L, void* XL) {
  lite_xl_plugin_init(XL);
  ...
  return 1;
}

In linux, to compile this file, you'd do: 'gcc -o xxxxx.so -shared xxxxx.c'. Simple!
Due to the way the API is structured, you *should not* link or include lua libraries.

This file was automatically generated by the below code. Do NOT MODIFY DIRECTLY.


#!/bin/sh
echo "#ifndef LITE_XL_PLUGIN_API"
echo "#define LITE_XL_PLUGIN_API"
echo "/* "
echo "The lite_xl plugin API is quite simple. Any shared library can be a plugin file, so long"
echo "as it has an entrypoint that looks like the following, where xxxxx is the plugin name:"
echo
echo '#include "lite_xl_plugin_api.h"'
echo
echo "int lua_open_lite_xl_xxxxx(lua_State* L, void* XL) {"
echo "  lite_xl_plugin_init(XL);"
echo "  ..."
echo "  return 1;"
echo "}"
echo
echo "In linux, to compile this file, you'd do: 'gcc -o xxxxx.so -shared xxxxx.c'. Simple!"
echo "Due to the way the API is structured, you *should not* link or include lua libraries."
echo
echo "This file was automatically generated by the below code. Do NOT MODIFY DIRECTLY."
echo
echo
cat $0
echo "*""/"
echo "#include <stddef.h>"
echo "typedef struct lua_State lua_State; typedef double lua_Number; typedef int (*lua_CFunction)(lua_State*); typedef ptrdiff_t lua_Integer;"
echo "typedef unsigned long lua_Unsigned; typedef struct luaL_Buffer luaL_Buffer; typedef struct luaL_Reg luaL_Reg; typedef struct lua_Debug lua_Debug;"
echo "typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar);"
echo "typedef void * (*lua_Alloc) (void *ud, void *ptr, size_t osize, size_t nsize);"
echo "typedef int (*lua_Writer) (lua_State *L, const void* p, size_t sz, void* ud);"
LUA_HEADERS=`pkg-config --cflags lua5.2 | sed 's/^-I//' | sed 's/$/\/*.h/'`
grep -h "^LUA\(LIB\)*_API" $LUA_HEADERS | sed "s/LUA\(LIB\)*_API //" | sed "s/(lua/(*lua/" | grep -v ",\s*$" | sed "s/^/static /"
grep -h "#define luaL*_" $LUA_HEADERS | grep -v "\\\s*$" | grep -v "\(assert\|lock\)" | grep -v "\(asm\|int32\)" | grep -v "#define lua_number2integer(i,n)\s*lua_number2int(i, n)"
echo "#define lua_pushliteral(L, s) lua_pushlstring(L, "" s, (sizeof(s)/sizeof(char))-1)"
echo "#define lua_pushglobaltable(L) lua_rawgeti(L, LUA_REGISTRYINDEX, LUA_RIDX_GLOBALS)"
echo "#define IMPORT_SYMBOL(name, ret, ...) name = (ret (*)(__VA_ARGS__))symbol(#name)"
echo "static void lite_xl_plugin_init(void* XL) {"
echo "\tvoid* (*symbol)(const char*) = (void* (*)(const char*))XL;"
grep -h "^LUA\(LIB\)*_API" $LUA_HEADERS | sed "s/LUA\(LIB\)*_API //" | sed "s/(lua/(*lua/" | grep -v ",\s*$" | sed "s/^\([^)]*\)(\*\(lua\w*\))\s*(/\tIMPORT_SYMBOL(\2, \1,/"
echo "}"
echo "#endif"
*/
#include <stddef.h>
typedef struct lua_State lua_State; typedef double lua_Number; typedef int (*lua_CFunction)(lua_State*); typedef ptrdiff_t lua_Integer;
typedef unsigned long lua_Unsigned; typedef struct luaL_Buffer luaL_Buffer; typedef struct luaL_Reg luaL_Reg; typedef struct lua_Debug lua_Debug;
typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar);
typedef void * (*lua_Alloc) (void *ud, void *ptr, size_t osize, size_t nsize);
typedef int (*lua_Writer) (lua_State *L, const void* p, size_t sz, void* ud);
static void (*luaL_checkversion_) (lua_State *L, lua_Number ver);
static int (*luaL_getmetafield) (lua_State *L, int obj, const char *e);
static int (*luaL_callmeta) (lua_State *L, int obj, const char *e);
static const char *(*luaL_tolstring) (lua_State *L, int idx, size_t *len);
static int (*luaL_argerror) (lua_State *L, int numarg, const char *extramsg);
static lua_Number (*luaL_checknumber) (lua_State *L, int numArg);
static lua_Number (*luaL_optnumber) (lua_State *L, int nArg, lua_Number def);
static lua_Integer (*luaL_checkinteger) (lua_State *L, int numArg);
static lua_Unsigned (*luaL_checkunsigned) (lua_State *L, int numArg);
static void (*luaL_checkstack) (lua_State *L, int sz, const char *msg);
static void (*luaL_checktype) (lua_State *L, int narg, int t);
static void (*luaL_checkany) (lua_State *L, int narg);
static int   (*luaL_newmetatable) (lua_State *L, const char *tname);
static void  (*luaL_setmetatable) (lua_State *L, const char *tname);
static void *(*luaL_testudata) (lua_State *L, int ud, const char *tname);
static void *(*luaL_checkudata) (lua_State *L, int ud, const char *tname);
static void (*luaL_where) (lua_State *L, int lvl);
static int (*luaL_error) (lua_State *L, const char *fmt, ...);
static int (*luaL_fileresult) (lua_State *L, int stat, const char *fname);
static int (*luaL_execresult) (lua_State *L, int stat);
static int (*luaL_ref) (lua_State *L, int t);
static void (*luaL_unref) (lua_State *L, int t, int ref);
static int (*luaL_loadstring) (lua_State *L, const char *s);
static lua_State *(*luaL_newstate) (void);
static int (*luaL_len) (lua_State *L, int idx);
static void (*luaL_setfuncs) (lua_State *L, const luaL_Reg *l, int nup);
static int (*luaL_getsubtable) (lua_State *L, int idx, const char *fname);
static void (*luaL_buffinit) (lua_State *L, luaL_Buffer *B);
static char *(*luaL_prepbuffsize) (luaL_Buffer *B, size_t sz);
static void (*luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l);
static void (*luaL_addstring) (luaL_Buffer *B, const char *s);
static void (*luaL_addvalue) (luaL_Buffer *B);
static void (*luaL_pushresult) (luaL_Buffer *B);
static void (*luaL_pushresultsize) (luaL_Buffer *B, size_t sz);
static char *(*luaL_buffinitsize) (lua_State *L, luaL_Buffer *B, size_t sz);
static lua_State *(*lua_newstate) (lua_Alloc f, void *ud);
static void       (*lua_close) (lua_State *L);
static lua_State *(*lua_newthread) (lua_State *L);
static lua_CFunction (*lua_atpanic) (lua_State *L, lua_CFunction panicf);
static const lua_Number *(*lua_version) (lua_State *L);
static int   (*lua_absindex) (lua_State *L, int idx);
static int   (*lua_gettop) (lua_State *L);
static void  (*lua_settop) (lua_State *L, int idx);
static void  (*lua_pushvalue) (lua_State *L, int idx);
static void  (*lua_remove) (lua_State *L, int idx);
static void  (*lua_insert) (lua_State *L, int idx);
static void  (*lua_replace) (lua_State *L, int idx);
static void  (*lua_copy) (lua_State *L, int fromidx, int toidx);
static int   (*lua_checkstack) (lua_State *L, int sz);
static void  (*lua_xmove) (lua_State *from, lua_State *to, int n);
static int             (*lua_isnumber) (lua_State *L, int idx);
static int             (*lua_isstring) (lua_State *L, int idx);
static int             (*lua_iscfunction) (lua_State *L, int idx);
static int             (*lua_isuserdata) (lua_State *L, int idx);
static int             (*lua_type) (lua_State *L, int idx);
static const char     *(*lua_typename) (lua_State *L, int tp);
static lua_Number      (*lua_tonumberx) (lua_State *L, int idx, int *isnum);
static lua_Integer     (*lua_tointegerx) (lua_State *L, int idx, int *isnum);
static lua_Unsigned    (*lua_tounsignedx) (lua_State *L, int idx, int *isnum);
static int             (*lua_toboolean) (lua_State *L, int idx);
static const char     *(*lua_tolstring) (lua_State *L, int idx, size_t *len);
static size_t          (*lua_rawlen) (lua_State *L, int idx);
static lua_CFunction   (*lua_tocfunction) (lua_State *L, int idx);
static void	       *(*lua_touserdata) (lua_State *L, int idx);
static lua_State      *(*lua_tothread) (lua_State *L, int idx);
static const void     *(*lua_topointer) (lua_State *L, int idx);
static void  (*lua_arith) (lua_State *L, int op);
static int   (*lua_rawequal) (lua_State *L, int idx1, int idx2);
static int   (*lua_compare) (lua_State *L, int idx1, int idx2, int op);
static void        (*lua_pushnil) (lua_State *L);
static void        (*lua_pushnumber) (lua_State *L, lua_Number n);
static void        (*lua_pushinteger) (lua_State *L, lua_Integer n);
static void        (*lua_pushunsigned) (lua_State *L, lua_Unsigned n);
static const char *(*lua_pushlstring) (lua_State *L, const char *s, size_t l);
static const char *(*lua_pushstring) (lua_State *L, const char *s);
static const char *(*lua_pushfstring) (lua_State *L, const char *fmt, ...);
static void  (*lua_pushcclosure) (lua_State *L, lua_CFunction fn, int n);
static void  (*lua_pushboolean) (lua_State *L, int b);
static void  (*lua_pushlightuserdata) (lua_State *L, void *p);
static int   (*lua_pushthread) (lua_State *L);
static void  (*lua_getglobal) (lua_State *L, const char *var);
static void  (*lua_gettable) (lua_State *L, int idx);
static void  (*lua_getfield) (lua_State *L, int idx, const char *k);
static void  (*lua_rawget) (lua_State *L, int idx);
static void  (*lua_rawgeti) (lua_State *L, int idx, int n);
static void  (*lua_rawgetp) (lua_State *L, int idx, const void *p);
static void  (*lua_createtable) (lua_State *L, int narr, int nrec);
static void *(*lua_newuserdata) (lua_State *L, size_t sz);
static int   (*lua_getmetatable) (lua_State *L, int objindex);
static void  (*lua_getuservalue) (lua_State *L, int idx);
static void  (*lua_setglobal) (lua_State *L, const char *var);
static void  (*lua_settable) (lua_State *L, int idx);
static void  (*lua_setfield) (lua_State *L, int idx, const char *k);
static void  (*lua_rawset) (lua_State *L, int idx);
static void  (*lua_rawseti) (lua_State *L, int idx, int n);
static void  (*lua_rawsetp) (lua_State *L, int idx, const void *p);
static int   (*lua_setmetatable) (lua_State *L, int objindex);
static void  (*lua_setuservalue) (lua_State *L, int idx);
static int   (*lua_getctx) (lua_State *L, int *ctx);
static int (*lua_dump) (lua_State *L, lua_Writer writer, void *data);
static int  (*lua_resume) (lua_State *L, lua_State *from, int narg);
static int  (*lua_status) (lua_State *L);
static int (*lua_gc) (lua_State *L, int what, int data);
static int   (*lua_error) (lua_State *L);
static int   (*lua_next) (lua_State *L, int idx);
static void  (*lua_concat) (lua_State *L, int n);
static void  (*lua_len)    (lua_State *L, int idx);
static lua_Alloc (*lua_getallocf) (lua_State *L, void **ud);
static void      (*lua_setallocf) (lua_State *L, lua_Alloc f, void *ud);
static int (*lua_getstack) (lua_State *L, int level, lua_Debug *ar);
static int (*lua_getinfo) (lua_State *L, const char *what, lua_Debug *ar);
static const char *(*lua_getlocal) (lua_State *L, const lua_Debug *ar, int n);
static const char *(*lua_setlocal) (lua_State *L, const lua_Debug *ar, int n);
static const char *(*lua_getupvalue) (lua_State *L, int funcindex, int n);
static const char *(*lua_setupvalue) (lua_State *L, int funcindex, int n);
static void *(*lua_upvalueid) (lua_State *L, int fidx, int n);
static int (*lua_sethook) (lua_State *L, lua_Hook func, int mask, int count);
static lua_Hook (*lua_gethook) (lua_State *L);
static int (*lua_gethookmask) (lua_State *L);
static int (*lua_gethookcount) (lua_State *L);
static void (*luaL_openlibs) (lua_State *L);
#define luaL_checkversion(L)	luaL_checkversion_(L, LUA_VERSION_NUM)
#define luaL_loadfile(L,f)	luaL_loadfilex(L,f,NULL)
#define luaL_newlib(L,l)	(luaL_newlibtable(L,l), luaL_setfuncs(L,l,0))
#define luaL_checkstring(L,n)	(luaL_checklstring(L, (n), NULL))
#define luaL_optstring(L,n,d)	(luaL_optlstring(L, (n), (d), NULL))
#define luaL_checkint(L,n)	((int)luaL_checkinteger(L, (n)))
#define luaL_optint(L,n,d)	((int)luaL_optinteger(L, (n), (d)))
#define luaL_checklong(L,n)	((long)luaL_checkinteger(L, (n)))
#define luaL_optlong(L,n,d)	((long)luaL_optinteger(L, (n), (d)))
#define luaL_typename(L,i)	lua_typename(L, lua_type(L,(i)))
#define luaL_getmetatable(L,n)	(lua_getfield(L, LUA_REGISTRYINDEX, (n)))
#define luaL_opt(L,f,n,d)	(lua_isnoneornil(L,(n)) ? (d) : f(L,(n)))
#define luaL_loadbuffer(L,s,sz,n)	luaL_loadbufferx(L,s,sz,n,NULL)
#define luaL_addsize(B,s)	((B)->n += (s))
#define luaL_prepbuffer(B)	luaL_prepbuffsize(B, LUAL_BUFFERSIZE)
#define luaL_register(L,n,l)	(luaL_openlib(L,(n),(l),0))
#define lua_h
#define lua_upvalueindex(i)	(LUA_REGISTRYINDEX - (i))
#define lua_call(L,n,r)		lua_callk(L, (n), (r), 0, NULL)
#define lua_pcall(L,n,r,f)	lua_pcallk(L, (n), (r), (f), 0, NULL)
#define lua_yield(L,n)		lua_yieldk(L, (n), 0, NULL)
#define lua_tonumber(L,i)	lua_tonumberx(L,i,NULL)
#define lua_tointeger(L,i)	lua_tointegerx(L,i,NULL)
#define lua_tounsigned(L,i)	lua_tounsignedx(L,i,NULL)
#define lua_pop(L,n)		lua_settop(L, -(n)-1)
#define lua_newtable(L)		lua_createtable(L, 0, 0)
#define lua_register(L,n,f) (lua_pushcfunction(L, (f)), lua_setglobal(L, (n)))
#define lua_pushcfunction(L,f)	lua_pushcclosure(L, (f), 0)
#define lua_isfunction(L,n)	(lua_type(L, (n)) == LUA_TFUNCTION)
#define lua_istable(L,n)	(lua_type(L, (n)) == LUA_TTABLE)
#define lua_islightuserdata(L,n)	(lua_type(L, (n)) == LUA_TLIGHTUSERDATA)
#define lua_isnil(L,n)		(lua_type(L, (n)) == LUA_TNIL)
#define lua_isboolean(L,n)	(lua_type(L, (n)) == LUA_TBOOLEAN)
#define lua_isthread(L,n)	(lua_type(L, (n)) == LUA_TTHREAD)
#define lua_isnone(L,n)		(lua_type(L, (n)) == LUA_TNONE)
#define lua_isnoneornil(L, n)	(lua_type(L, (n)) <= 0)
#define lua_tostring(L,i)	lua_tolstring(L, (i), NULL)
#define lua_strlen(L,i)		lua_rawlen(L, (i))
#define lua_objlen(L,i)		lua_rawlen(L, (i))
#define lua_equal(L,idx1,idx2)		lua_compare(L,(idx1),(idx2),LUA_OPEQ)
#define lua_lessthan(L,idx1,idx2)	lua_compare(L,(idx1),(idx2),LUA_OPLT)
#define lua_number2str(s,n)	sprintf((s), LUA_NUMBER_FMT, (n))
#define lua_str2number(s,p)	strtod((s), (p))
#define lua_strx2number(s,p)	strtod((s), (p))
#define lua_pushliteral(L, s) lua_pushlstring(L,  s, (sizeof(s)/sizeof(char))-1)
#define lua_pushglobaltable(L) lua_rawgeti(L, LUA_REGISTRYINDEX, LUA_RIDX_GLOBALS)
#define IMPORT_SYMBOL(name, ret, ...) name = (ret (*)(__VA_ARGS__))symbol(#name)
static void lite_xl_plugin_init(void* XL) {
	void* (*symbol)(const char*) = (void* (*)(const char*))XL;
	IMPORT_SYMBOL(luaL_checkversion_, void ,lua_State *L, lua_Number ver);
	IMPORT_SYMBOL(luaL_getmetafield, int ,lua_State *L, int obj, const char *e);
	IMPORT_SYMBOL(luaL_callmeta, int ,lua_State *L, int obj, const char *e);
	IMPORT_SYMBOL(luaL_tolstring, const char *,lua_State *L, int idx, size_t *len);
	IMPORT_SYMBOL(luaL_argerror, int ,lua_State *L, int numarg, const char *extramsg);
	IMPORT_SYMBOL(luaL_checknumber, lua_Number ,lua_State *L, int numArg);
	IMPORT_SYMBOL(luaL_optnumber, lua_Number ,lua_State *L, int nArg, lua_Number def);
	IMPORT_SYMBOL(luaL_checkinteger, lua_Integer ,lua_State *L, int numArg);
	IMPORT_SYMBOL(luaL_checkunsigned, lua_Unsigned ,lua_State *L, int numArg);
	IMPORT_SYMBOL(luaL_checkstack, void ,lua_State *L, int sz, const char *msg);
	IMPORT_SYMBOL(luaL_checktype, void ,lua_State *L, int narg, int t);
	IMPORT_SYMBOL(luaL_checkany, void ,lua_State *L, int narg);
	IMPORT_SYMBOL(luaL_newmetatable, int   ,lua_State *L, const char *tname);
	IMPORT_SYMBOL(luaL_setmetatable, void  ,lua_State *L, const char *tname);
	IMPORT_SYMBOL(luaL_testudata, void *,lua_State *L, int ud, const char *tname);
	IMPORT_SYMBOL(luaL_checkudata, void *,lua_State *L, int ud, const char *tname);
	IMPORT_SYMBOL(luaL_where, void ,lua_State *L, int lvl);
	IMPORT_SYMBOL(luaL_error, int ,lua_State *L, const char *fmt, ...);
	IMPORT_SYMBOL(luaL_fileresult, int ,lua_State *L, int stat, const char *fname);
	IMPORT_SYMBOL(luaL_execresult, int ,lua_State *L, int stat);
	IMPORT_SYMBOL(luaL_ref, int ,lua_State *L, int t);
	IMPORT_SYMBOL(luaL_unref, void ,lua_State *L, int t, int ref);
	IMPORT_SYMBOL(luaL_loadstring, int ,lua_State *L, const char *s);
	IMPORT_SYMBOL(luaL_newstate, lua_State *,void);
	IMPORT_SYMBOL(luaL_len, int ,lua_State *L, int idx);
	IMPORT_SYMBOL(luaL_setfuncs, void ,lua_State *L, const luaL_Reg *l, int nup);
	IMPORT_SYMBOL(luaL_getsubtable, int ,lua_State *L, int idx, const char *fname);
	IMPORT_SYMBOL(luaL_buffinit, void ,lua_State *L, luaL_Buffer *B);
	IMPORT_SYMBOL(luaL_prepbuffsize, char *,luaL_Buffer *B, size_t sz);
	IMPORT_SYMBOL(luaL_addlstring, void ,luaL_Buffer *B, const char *s, size_t l);
	IMPORT_SYMBOL(luaL_addstring, void ,luaL_Buffer *B, const char *s);
	IMPORT_SYMBOL(luaL_addvalue, void ,luaL_Buffer *B);
	IMPORT_SYMBOL(luaL_pushresult, void ,luaL_Buffer *B);
	IMPORT_SYMBOL(luaL_pushresultsize, void ,luaL_Buffer *B, size_t sz);
	IMPORT_SYMBOL(luaL_buffinitsize, char *,lua_State *L, luaL_Buffer *B, size_t sz);
	IMPORT_SYMBOL(lua_newstate, lua_State *,lua_Alloc f, void *ud);
	IMPORT_SYMBOL(lua_close, void       ,lua_State *L);
	IMPORT_SYMBOL(lua_newthread, lua_State *,lua_State *L);
	IMPORT_SYMBOL(lua_atpanic, lua_CFunction ,lua_State *L, lua_CFunction panicf);
	IMPORT_SYMBOL(lua_version, const lua_Number *,lua_State *L);
	IMPORT_SYMBOL(lua_absindex, int   ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_gettop, int   ,lua_State *L);
	IMPORT_SYMBOL(lua_settop, void  ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_pushvalue, void  ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_remove, void  ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_insert, void  ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_replace, void  ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_copy, void  ,lua_State *L, int fromidx, int toidx);
	IMPORT_SYMBOL(lua_checkstack, int   ,lua_State *L, int sz);
	IMPORT_SYMBOL(lua_xmove, void  ,lua_State *from, lua_State *to, int n);
	IMPORT_SYMBOL(lua_isnumber, int             ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_isstring, int             ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_iscfunction, int             ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_isuserdata, int             ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_type, int             ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_typename, const char     *,lua_State *L, int tp);
	IMPORT_SYMBOL(lua_tonumberx, lua_Number      ,lua_State *L, int idx, int *isnum);
	IMPORT_SYMBOL(lua_tointegerx, lua_Integer     ,lua_State *L, int idx, int *isnum);
	IMPORT_SYMBOL(lua_tounsignedx, lua_Unsigned    ,lua_State *L, int idx, int *isnum);
	IMPORT_SYMBOL(lua_toboolean, int             ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_tolstring, const char     *,lua_State *L, int idx, size_t *len);
	IMPORT_SYMBOL(lua_rawlen, size_t          ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_tocfunction, lua_CFunction   ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_touserdata, void	       *,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_tothread, lua_State      *,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_topointer, const void     *,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_arith, void  ,lua_State *L, int op);
	IMPORT_SYMBOL(lua_rawequal, int   ,lua_State *L, int idx1, int idx2);
	IMPORT_SYMBOL(lua_compare, int   ,lua_State *L, int idx1, int idx2, int op);
	IMPORT_SYMBOL(lua_pushnil, void        ,lua_State *L);
	IMPORT_SYMBOL(lua_pushnumber, void        ,lua_State *L, lua_Number n);
	IMPORT_SYMBOL(lua_pushinteger, void        ,lua_State *L, lua_Integer n);
	IMPORT_SYMBOL(lua_pushunsigned, void        ,lua_State *L, lua_Unsigned n);
	IMPORT_SYMBOL(lua_pushlstring, const char *,lua_State *L, const char *s, size_t l);
	IMPORT_SYMBOL(lua_pushstring, const char *,lua_State *L, const char *s);
	IMPORT_SYMBOL(lua_pushfstring, const char *,lua_State *L, const char *fmt, ...);
	IMPORT_SYMBOL(lua_pushcclosure, void  ,lua_State *L, lua_CFunction fn, int n);
	IMPORT_SYMBOL(lua_pushboolean, void  ,lua_State *L, int b);
	IMPORT_SYMBOL(lua_pushlightuserdata, void  ,lua_State *L, void *p);
	IMPORT_SYMBOL(lua_pushthread, int   ,lua_State *L);
	IMPORT_SYMBOL(lua_getglobal, void  ,lua_State *L, const char *var);
	IMPORT_SYMBOL(lua_gettable, void  ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_getfield, void  ,lua_State *L, int idx, const char *k);
	IMPORT_SYMBOL(lua_rawget, void  ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_rawgeti, void  ,lua_State *L, int idx, int n);
	IMPORT_SYMBOL(lua_rawgetp, void  ,lua_State *L, int idx, const void *p);
	IMPORT_SYMBOL(lua_createtable, void  ,lua_State *L, int narr, int nrec);
	IMPORT_SYMBOL(lua_newuserdata, void *,lua_State *L, size_t sz);
	IMPORT_SYMBOL(lua_getmetatable, int   ,lua_State *L, int objindex);
	IMPORT_SYMBOL(lua_getuservalue, void  ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_setglobal, void  ,lua_State *L, const char *var);
	IMPORT_SYMBOL(lua_settable, void  ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_setfield, void  ,lua_State *L, int idx, const char *k);
	IMPORT_SYMBOL(lua_rawset, void  ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_rawseti, void  ,lua_State *L, int idx, int n);
	IMPORT_SYMBOL(lua_rawsetp, void  ,lua_State *L, int idx, const void *p);
	IMPORT_SYMBOL(lua_setmetatable, int   ,lua_State *L, int objindex);
	IMPORT_SYMBOL(lua_setuservalue, void  ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_getctx, int   ,lua_State *L, int *ctx);
	IMPORT_SYMBOL(lua_dump, int ,lua_State *L, lua_Writer writer, void *data);
	IMPORT_SYMBOL(lua_resume, int  ,lua_State *L, lua_State *from, int narg);
	IMPORT_SYMBOL(lua_status, int  ,lua_State *L);
	IMPORT_SYMBOL(lua_gc, int ,lua_State *L, int what, int data);
	IMPORT_SYMBOL(lua_error, int   ,lua_State *L);
	IMPORT_SYMBOL(lua_next, int   ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_concat, void  ,lua_State *L, int n);
	IMPORT_SYMBOL(lua_len, void  ,lua_State *L, int idx);
	IMPORT_SYMBOL(lua_getallocf, lua_Alloc ,lua_State *L, void **ud);
	IMPORT_SYMBOL(lua_setallocf, void      ,lua_State *L, lua_Alloc f, void *ud);
	IMPORT_SYMBOL(lua_getstack, int ,lua_State *L, int level, lua_Debug *ar);
	IMPORT_SYMBOL(lua_getinfo, int ,lua_State *L, const char *what, lua_Debug *ar);
	IMPORT_SYMBOL(lua_getlocal, const char *,lua_State *L, const lua_Debug *ar, int n);
	IMPORT_SYMBOL(lua_setlocal, const char *,lua_State *L, const lua_Debug *ar, int n);
	IMPORT_SYMBOL(lua_getupvalue, const char *,lua_State *L, int funcindex, int n);
	IMPORT_SYMBOL(lua_setupvalue, const char *,lua_State *L, int funcindex, int n);
	IMPORT_SYMBOL(lua_upvalueid, void *,lua_State *L, int fidx, int n);
	IMPORT_SYMBOL(lua_sethook, int ,lua_State *L, lua_Hook func, int mask, int count);
	IMPORT_SYMBOL(lua_gethook, lua_Hook ,lua_State *L);
	IMPORT_SYMBOL(lua_gethookmask, int ,lua_State *L);
	IMPORT_SYMBOL(lua_gethookcount, int ,lua_State *L);
	IMPORT_SYMBOL(luaL_openlibs, void ,lua_State *L);
}
#endif
